Arrays va Associative Arrays
Kirish
Bash scriptingda arrays (massivlar) va associative arrays (assotsiativ massivlar) yordamida ko‘p miqdordagi ma’lumotlarni tartibli va qulay boshqarish mumkin. Bu imkoniyatlar murakkab skriptlar va avtomatlashtirishda juda foydali.
Oddiy Arrays (Indexed Arrays)
E’lon qilish va qiymat berish
fruits=("olma" "banan" "uzum" "shaftoli")
Elementga murojaat qilish
echo ${fruits[0]} # olma
echo ${fruits[2]} # uzum
Barcha elementlarni ko‘rsatish
echo ${fruits[@]}
Elementlar sonini aniqlash
echo ${#fruits[@]} # 4
Element qo‘shish
fruits+=("gilos")
Elementlarni sikl orqali o‘qish
for fruit in "${fruits[@]}"; do
echo $fruit
done
Elementni o‘chirish
unset fruits[1] # "banan" o‘chiriladi
Associative Arrays (Assotsiativ massivlar)
E’lon qilish
declare -A user
user[name]="Ali"
user[age]=25
user[email]="ali@example.com"
Elementga murojaat qilish
echo ${user[name]} # Ali
echo ${user[age]} # 25
Barcha kalitlarni va qiymatlarni ko‘rsatish
echo ${!user[@]} # name age email
echo ${user[@]} # Ali 25 ali@example.com
Sikl orqali o‘qish
for key in "${!user[@]}"; do
echo "$key: ${user[$key]}"
done
Element qo‘shish va o‘chirish
user[city]="Toshkent"
unset user[email]
Amaliy misollar
1. Foydalanuvchilar ro‘yxatini associative arrayda saqlash
declare -A users
users[ali]="ali@example.com"
users[vali]="vali@example.com"
users[sami]="sami@example.com"
for name in "${!users[@]}"; do
echo "$name: ${users[$name]}"
done
2. Indexed arraydan elementlarni filtrlash
numbers=(1 2 3 4 5 6 7 8 9 10)
for num in "${numbers[@]}"; do
if (( num % 2 == 0 )); then
echo "$num juft son"
fi
done
3. Associative arraydan qiymat bo‘yicha qidirish
declare -A colors
colors[red]="#FF0000"
colors[green]="#00FF00"
colors[blue]="#0000FF"
search="#00FF00"
for key in "${!colors[@]}"; do
if [[ "${colors[$key]}" == "$search" ]]; then
echo "$key rangi topildi!"
fi
done
Xulosa
Arrays va associative arrays yordamida bash skriptlarida ma’lumotlarni tartibli va samarali boshqarish mumkin. Indexed arrays — tartibli ro‘yxatlar uchun, associative arrays — kalit-qiymat juftliklari uchun qulay. Amaliyotda bu imkoniyatlar murakkab avtomatlashtirish va tahlil